package com.cmc.cloud.cmclink.doc.vo.voyagelock;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.*;

/**
 * 航次锁船记录 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 * @author codegen
 */
@Data
public class VoyageLockBaseVO {

        @Schema(description = "船舶代码", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "{VoyageLockBaseVO.vesselCode.NotBlank}")
	@Length(max = 50,message = "{VoyageLockBaseVO.vesselCode.Length}")
    private String vesselCode;
	
        @Schema(description = "航次", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "{VoyageLockBaseVO.voyage.NotBlank}")
	@Length(max = 50,message = "{VoyageLockBaseVO.voyage.Length}")
    private String voyage;
	
        @Schema(description = "港口代码", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "{VoyageLockBaseVO.portCode.NotBlank}")
	@Length(max = 5,message = "{VoyageLockBaseVO.portCode.Length}")
    private String portCode;
	
        @Schema(description = "航线代码")
	@Length(max = 50,message = "{VoyageLockBaseVO.laneCode.Length}")
    private String laneCode;
	
        @Schema(description = "航次锁标识", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "{VoyageLockBaseVO.voyageLockFlag.NotNull}")
    private Boolean voyageLockFlag;
	
        @Schema(description = "进出口类型 EX=出口, IM=进口", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotBlank(message = "{VoyageLockBaseVO.exImType.NotBlank}}")
	@Length(max = 2,message = "{VoyageLockBaseVO.exImType.Length}")
    private String exImType;

    @Schema(description = "订舱数 S/O Count", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    private Long soCount;

    @Schema(description = "提单数", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    private Long blCount;

        @Schema(description = "Lock Charge", requiredMode = Schema.RequiredMode.REQUIRED, example = "1/2")
    private String lockCharge;

    @Schema(description = "Lock SI", requiredMode = Schema.RequiredMode.REQUIRED, example = "1/2")
    private String lockSi;

}
